package findMaxK;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Solution {
    public int findMaxK(int[] nums) {
        // 找出自身与对应的正整数都在数组中的最大正整数K
//        int ans = -1;
//        Set<Integer> set = new HashSet<>();
//        for (int num : nums) {
//            if(set.contains(-num)) {
//                ans = Math.max(Math.abs(num),ans);
//            }
//            set.add(num);
//        }
//        return ans;

        // 双指针
        Arrays.sort(nums);
        // -3 -1 2 3 4
        // 找到最大的
        int l = 0;
        int r = nums.length-1;
        while (l<r) {
            if(nums[r] > -nums[l]) {
                r--;
            }else if(nums[r] < - nums[l]) {
                l++;
            }else {
                return nums[r];
            }
        }
        return -1;
    }
}
